home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Utilities / DVIM72-Mac 1.9.6 / source / get_pgtab, bytes.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-09-14  |  1.7 KB  |  62 lines  |  [TEXT/R*ch]

  1. /**********************************************************************/
  2. /****************************** getpgtab ******************************/
  3. /**********************************************************************/
  4. #include "dvihead.h"
  5. #include "commands.h"
  6. #include "gendefs.h"
  7. #include "gblprocs.h"
  8. #include "egblvars.h"
  9. #include "m72.h"
  10. #include "mac-specific.h"
  11.  
  12. void
  13. getpgtab(lastpageptr)    // called by readpost
  14. long lastpageptr;
  15.  
  16. {
  17.     register long p;
  18.     register INT16 i,k;
  19.  
  20.     (void) FSEEK (dvifp,lastpageptr,0);
  21.     p = lastpageptr;
  22.  
  23.     for (k = 0; (p != (-1)) && (k < MAXPAGE); ++k)
  24.     {
  25.         page_ptr[MAXPAGE-1-k] = p;
  26.         (void) FSEEK (dvifp,(long) p, 0);
  27.  
  28.         if ((BYTE)nosignex(dvifp,(BYTE)1) != BOP)
  29.         {
  30.             Kill_dvi( "getpgtab():  Invalid BOP "
  31.                 "(beginning-of-page) back chain" );
  32.             return;
  33.         }
  34.  
  35.         for (i = 0; i <= 9; ++i)
  36.             (void) nosignex(dvifp,(BYTE)4);   /* discard count0..count9 */
  37.         p = (long)signex(dvifp,(BYTE)4);
  38.     }
  39.     page_count = k;
  40.     if (k >= MAXPAGE)
  41.         (void)warning("getpgtab():  Page table full...rebuild driver with \
  42. larger MAXPAGE");
  43.     else    /* move pointer table to front of array */
  44.         for (k = 0; k < page_count; ++k)
  45.         page_ptr[k] = page_ptr[MAXPAGE-page_count+k];
  46. }
  47.  
  48. /**********************************************************************/
  49. /****************************** getbytes ******************************/
  50. /**********************************************************************/
  51.  
  52. void
  53. getbytes(fp, cp, n)    /* get n bytes from file fp */
  54. register FILE *fp;    /* file pointer     */
  55. register char *cp;    /* character pointer */
  56. register BYTE n;    /* number of bytes */
  57.  
  58. {
  59.     while (n--)
  60.     *cp++ = (char)getc(fp);
  61. }
  62.